package com.hongyi.system.service;

import com.hongyi.common.framework.domain.LoginUser;
import com.hongyi.system.domain.vo.SysUserVo;

import java.util.function.Supplier;

/**
 * 用户登录接口
 *
 * @author DingHao
 */
public interface IAuthService {

    /**
     * 登录校验
     */
    void checkLogin(String username, Supplier<Boolean> supplier);

    /**
     * 构建登录用户
     *
     * @param sysUserVo  用户信息
     * @param deviceType 设备类型
     */
    LoginUser buildLoginUser(SysUserVo sysUserVo,String deviceType);

    /**
     * 记录系统登录信息
     *
     * @param username 用户名
     * @param status   状态
     * @param message  消息内容
     */
    void recordLoginInformation(String username, String status, String message);

    /**
     * 退出登录
     */
    void logout();

}
